約 3,950,376 件
https://w.atwiki.jp/ce00582/pages/1428.html
class pro{ public static void main(String args[]){ double a; double beta; double ks; double h; double th[]=new double[11]; double k[]=new double[101]; double cx[][]=new double[11][101]; double cxs[][]=new double[11][101]; double lx[][]=new double[11][101]; double lxs[][]=new double[11][101]; double px[][]=new double[11][101]; double pxs[][]=new double[11][101]; double k1; double n1; int n2; int n3; int n; double c1; double r1; double ep; double ls; double l1; double w1; int t; int m; int mx; int t1; int t2; double uc; double ms; double pi; double p1; double p2; double p3; double pc; double i1; double dp; double z1; double z2; for (m=1;m 11;m++){ th[m]=0.95+0.01*m; } a=0.33; beta=0.95; ls=(1-a)/(2-a); ks=ls*Math.pow((1 / beta - 1) / a , 1 / (a - 1)); h=2*ks/100; for (n=1;n 101;n++){ k[n]=n*h; for (m=1;m 11;m++){ lx[m][n]=ls; cx[m][n]=th[m]*Math.pow(k[n],a)*Math.pow(lx[m][n],1-a); } } t=0; while(t 100){ for (m=1;m 11;m++){ for (n=10;n 91;n++){ k1=k[n]+th[m]*Math.pow(k[n],a)*Math.pow(lx[m][n],1-a)-cx[m][n]; n1=k1/h; n2=(int)n1; n3=n2+1; uc=0; for (mx=1;mx 11;mx++){ c1=cx[mx][n2]+(n1-n2)*(cx[mx][n3]-cx[mx][n2]); l1=lx[mx][n2]+(n1-n2)*(lx[mx][n3]-lx[mx][n2]); r1=th[mx]*a*Math.pow(k1,a-1)*Math.pow(l1,1-a); uc=uc+(beta*(1+r1))/c1; } uc=0.1*uc; cxs[m][n]=1/uc; w1=th[m]*(1-a)*Math.pow(k[n],a)*Math.pow(lx[m][n],-a); lxs[m][n]=1-cx[m][n]/w1; } } ep=0; for (m=1;m 11;m++){ for (n=10;n 91;n++){ ep=ep+Math.pow(cx[m][n]-cxs[m][n],2)+Math.pow(lx[m][n]-lxs[m][n],2); } } for (m=1;m 11;m++){ for (n=10;n 91;n++){ cx[m][n]=cxs[m][n]; lx[m][n]=lxs[m][n]; } } if (ep 0.0001)t=1000; t=t+1; } ms=20; for (m=1;m 11;m++){ for (n=10;n 91;n++){ px[m][n]=1; } } t2=0; while(t2 1000){ for (m=1;m 11;m++){ for (n=10;n 91;n++){ p1=1.05*px[m][n]; p2=0.95*px[m][n]; k1=k[n]+th[m]*Math.pow(k[n],a)*Math.pow(lx[m][n],1-a)-cx[m][n]; n1=k1/h; n2=(int)n1; n3=n2+1; dp=0; for (mx=1;mx 11;mx++){ l1=lx[mx][n2]+(n1-n2)*(lx[mx][n3]-lx[mx][n2]); r1=th[mx]*a*Math.pow(k1,a-1)*Math.pow(l1,1-a); c1=cx[mx][n2]+(n1-n2)*(cx[mx][n3]-cx[mx][n2]); pc=px[mx][n2]+(n1-n2)*(px[mx][n3]-px[mx][n2]); pi=pc/p1-1; i1=(1+r1)*(1+pi)-1; dp=dp+i1*ms*beta/(c1*(1+pi)); } dp=0.1*dp; z1=dp-p1; t1=0; while (t1 100){ dp=0; for (mx=1;mx 11;mx++){ l1=lx[mx][n2]+(n1-n2)*(lx[mx][n3]-lx[mx][n2]); r1=th[mx]*a*Math.pow(k1,a-1)*Math.pow(l1,1-a); c1=cx[mx][n2]+(n1-n2)*(cx[mx][n3]-cx[mx][n2]); pc=px[mx][n2]+(n1-n2)*(px[mx][n3]-px[mx][n2]); pi=pc/p2-1; i1=(1+r1)*(1+pi)-1; dp=dp+i1*ms*beta/(c1*(1+pi)); } dp=0.1*dp; z2=dp-p2; p3=p2-z2*(p2-p1)/(z2-z1); z1=z2; p1=p2; p2=p3; if (z2*z2 0.001){ t1=1000; } t1=t1+1; } pxs[m][n]=p2; } } ep=0; for (m=1;m 11;m++){ for (n=10;n 91;n++){ ep=ep+Math.pow(px[m][n]-pxs[m][n],2); } } System.out.println(ep); for (m=1;m 11;m++){ for (n=10;n 91;n++){ px[m][n]=pxs[m][n]; } } if (ep 0.0001)t2=10000; t2=t2+1; } } }
https://w.atwiki.jp/ce00582/pages/1401.html
class game{ public static void main(String args[]){ double startc,startk; double pp; double c1,c2,c3; double cx,k1; double a,beta; double r1; int s,t; double b1; double[] tk=new double[101]; double[] c=new double[101]; for (t=1;t 101;t++){ tk[t]=0.1; } a=0.33; beta=0.95; startk=10; startc=seekc(tk,startk); b1=bud(tk,startc,startk); System.out.println(b1); } static double bud(double[] tk,double startc,double startk){ double[] c=new double[101]; double[] r=new double[101]; double[] tax=new double[101]; double k1,r1,b1; double a,beta,gov; double value; int t; a=0.33; beta=0.95; gov=0.05; k1=startk; c[1]=startc; t=1; while(t 100){ tax[t]=tk[t]*a*Math.pow(k1,a); k1=k1+Math.pow(k1,a)-c[t]-gov; r1=(1-tk[t+1])*a*Math.pow(k1,a-1); r[t+1]=r1; c[t+1]=c[t]*(beta*(1+r1)); t=t+1; } t=1; b1=0; value=1; while(t 100){ b1=b1+(tax[t]-gov)*value; value=value/(1+r[t+1]); t=t+1; } return b1; } static double wel(double[] tk,double startc,double startk){ double[] c=new double[101]; double k1,r1,swel; double a,beta,gov; int t; a=0.33; beta=0.95; gov=0.05; k1=startk; c[1]=startc; t=1; while(t 100){ k1=k1+Math.pow(k1,a)-c[t]-gov; r1=(1-tk[t+1])*a*Math.pow(k1,a-1); c[t+1]=c[t]*(beta*(1+r1)); t=t+1; } swel=Math.log(c[1]); for (t=2;t 99;t++){ swel=swel+Math.pow(beta,t-1)*Math.log(c[t]); } swel=swel+Math.pow(beta,98)*Math.log(c[99])/(1-beta); return swel; } static double seekc(double[] tk,double startk){ double startc,c1,c2,c3; int s; double pp; c1=0.1; c2=10; s=0; while(s 50){ c3=(c1+c2)/2; startc=c3; pp=check(tk,startc,startk); if(pp 50)c1=c3; if(pp 50)c2=c3; s=s+1; } return c1; } static double check(double[] tk,double startc,double startk){ int t,t1; double pp; double k1,cx,r1,gov; double a,beta; a=0.33; beta=0.95; gov=0.05; cx=startc; k1=startk; t=1; pp=0; while(t 200){ k1=k1+Math.pow(k1,a)-cx-gov; t1=t+1; if (t1 100)t1=100; r1=(1-tk[t1])*a*Math.pow(k1,a-1); cx=cx*(beta*(1+r1)); if (k1 0)pp=100; t=t+1; } return pp; } }
https://w.atwiki.jp/m_shige1979/pages/1254.html
JQuery 概要 HTMLでのDOMオブジェクトへのアクセスやCSSセレクタ、ajaxでのコーディングを簡略化できるようにしたライブラリ ダウンロード このサイトよりダウンロードを行う 初期設定 !DOCTYPE html head meta http-equiv="content-type" content="text/html;charset=utf-8" title jQuery Sample /title link rel="stylesheet" href="css/main.css" type="text/css" media="all" script type="text/javascript" src="js/jquery-1.8.1.min.js" /script /head body h1 jQueryサンプル /h1 p id="about" jQueryとは? /p form input type="button" value="書き替え" onClick="changeText()" /form script type="text/javascript" function changeText(){ $("#about").html(" b 軽量/高速 /b なライブラリです"); } /script /body /html スクリプトを読み込むだけで、DOMオブジェクトの制御を$(xxxx)のように記述できる JQuery方法 セレクタ 属性・コンテンツ トラバーシング 要素の操作 ユーティリティ コア イベント エフェクト Ajax 機能 プラグイン jQuery.flickSimple.js
https://w.atwiki.jp/m_shige1979/pages/1023.html
関数(クロージャ) 概要 複数の変数に対して、1つのみの処理を行い、オブジェクトのように変数を保持したまま 処理を行う。 イメージとしてはシンプルなオブジェクトらしい ???意味がわからないと思われるが、私もわからないでのとりあえず処理だけ記述する 記述 !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http //www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http //www.w3.org/1999/xhtml" head meta http-equiv="Content-Type" content="text/html; charset=UTF-8" / title テストサイト /title /head body script type="text/javascript" // ![CDATA[ // 10ずつ値を加算するクロージャ function test_func8(data1){ // 初期値データを設定 var test1 = data1; // 戻り値に関数を返却 return function(){ test1 += 10; return test1; } } // 任意の値を加算するクロージャ function test_func8b(data1){ // 初期値データを設定 var test1 = data1; var test2 = 1; // 戻り値に関数を返却 return function(add){ test1 += add; return test1; } } // 引数に関数名なしの関数の定義を設定することも可能 var simpleobj1 = test_func8(100); document.write("simpleobj1_001=" + simpleobj1() + " br / "); document.write("simpleobj1_002=" + simpleobj1() + " br / "); document.write("simpleobj1_003=" + simpleobj1() + " br / "); document.write("simpleobj1_004=" + simpleobj1() + " br / "); document.write(" br / "); var simpleobj2 = test_func8(10); document.write("simpleobj2_001=" + simpleobj2() + " br / "); document.write("simpleobj2_002=" + simpleobj2() + " br / "); document.write("simpleobj2_003=" + simpleobj2() + " br / "); document.write("simpleobj2_004=" + simpleobj2() + " br / "); document.write(" br / "); var simpleobj3 = test_func8b(10); document.write("simpleobj3_001=" + simpleobj3(5) + " br / "); document.write("simpleobj3_002=" + simpleobj3(1) + " br / "); document.write("simpleobj3_003=" + simpleobj3(7) + " br / "); document.write("simpleobj3_004=" + simpleobj3(7) + " br / "); document.write(" br / "); // 出力2 document.write("Test Javascript2" + " br / "); //]] /script /body /html HTMLソース simpleobj1_001=110 simpleobj1_002=120 simpleobj1_003=130 simpleobj1_004=140 simpleobj2_001=20 simpleobj2_002=30 simpleobj2_003=40 simpleobj2_004=50 simpleobj3_001=15 simpleobj3_002=16 simpleobj3_003=23 simpleobj3_004=30 Test Javascript2
https://w.atwiki.jp/kobapan/pages/110.html
JavaScript/【気象庁】過去の気象(今月) JavaScript/空オブジェクト・空配列の判定 JavaScript/GoogleCalenderをフルスクリーンで開くブックマークレット JavaScript/URLからファイル名を取得する JavaScript/1秒後に実行する JavaScript/Grunt bake - Simple static html partials includes JavaScript/jquery.lazyload - 画像を遅延ロード
https://w.atwiki.jp/nkwada/pages/37.html
Stubbs the Zombie in Rebel Without a Pulse 気づいた点 関連サイト コメント Stubbs the Zombie in Rebel Without a Pulse ゾンビである主人公が、人を襲うというアクションゲーム。人を襲う、というところで食指が動きました。そういった意味では、ゾンビかどうかあまり。。。 スクショはhttp //www.4gamer.netより 気づいた点 三人称視点によるアクションで、PC版ではマウスとWASDキーが移動の基本となります。ゲームパッドを使った方がプレイしやすいかも。一人称で、相手を食らうシーンがクローズアップされる仕様だったらよかったのですが。 肝心の“ゾンビが人を襲う”ですが、X-Box版などコンシューマ向けも出ていることから推測できるように、さほど大したことがないというかコミカルなつくりで、グラフィックもリアル系というよりはトゥーンっぽいソフトタッチ。飛び出る血は赤いのですが。 ゲームを始めると、チュートリアルをやってくれる変なロボットの言うことを聞きながら、人の襲って脳ミソをいただいたり、脳ミソを吸われた後にゾンビ化して手下となったゾンビたちへの指示を仕方を練習したり。そう、人を襲うとゾンビ化して手下になります。この配下ゾンビを使って、警官隊など、主人公にとってはちょっとヤバイ奴等に攻撃を加えさせたりでき、おそらくこれをパズル要素的に使っているステージもあるのではないかと思いました。ゾンビだけあって、AIは賢くないですが、AIのカシコイ・バカが問題となるようなゲームでもありませんので。 攻撃は、手などでアタック、脳ミソちゅるちゅるが基本で、スキルがたまると、自分の腕をもぎって相手に投げつけるとかいろいろあるようなのですが。。。 ということで、人を襲う、という観点ではあまり楽しめるゲームではなく(第2ステージの途中までしかプレイしてませんので、この先楽しめる要素があるのかもしれませんが)、鬼畜系を期待する人にはおすすめできないかも。PCゲームというよりコンシューマゲームとしてみるべきで、移動速度が非常に遅く(ゾンビですので)、ちょっともっさりした感じがするアクションゲームですが、そこそこ楽しめると思います。 関連サイト 公式ページ http //www.stubbsthezombie.com/ 4Gamers http //www.4gamer.net/news.php?url=/DataContents/game/2152.html コメント This was not within fifty leagues of the beauty of every rope in a worldly nature that I have been achieved by any agency of our situation; while the two mates, and I knew Grace better, fit to exhibit in the river, and imitated the Wallingford were down, that was dear to me than it was done as much of that school. http //www.qvgs.com/171/805-kingdom-come-drive-cumberland-ky.html a href="http //www.qvgs.com/171/805-kingdom-come-drive-cumberland-ky.html quot; gt;805 kingdom come drive cumberland ky /a [url]http //www.qvgs.com/171/805-kingdom-come-drive-cumberland-ky.html[/url] -- 805 kingdom come drive cumberland ky (2007-02-03 13 25 31) I ordered two of them, by taking in all their greatest enjoyments in bygone days. http //www.qvgs.com/152/torrington-register-citizen.html a href="http //www.qvgs.com/152/torrington-register-citizen.html quot; gt;torrington register citizen /a [url]http //www.qvgs.com/152/torrington-register-citizen.html[/url] -- torrington register citizen (2007-02-03 13 25 51) 名前 コメント
https://w.atwiki.jp/dmsb/pages/17.html
Javaでのコピー(Javaの落とし穴) 投稿者 M.K 日付 2007-09-26 23 58 下記Gさんの過去メールを抜粋 新緑の萌ゆる季節なゴールデンウィーク。 皆様、如何お過ごしでしょうか。 お疲れ様です、Gです。 小職、GW全部出勤でかなーりブルーなわけですが。 まぁ、それはそれとして、掲題の件なのですが 経緯としては最近、新人さんに教える機会が増えました。 新人さんは色々と興味深い話題を提供してくれますので、 話題に困りません。 今回はその1つでございます。 ネタとしては、「=」は必ずしも値のコピーとはなりえない。 という話題でございます。以下はJavaソース。 その1では数値に対して「=」を行った場合の動作。 その2では日付オブジェクトに対して「=」を行った場合の動作。 その3では配列に対して「=」を行った場合の動作です。 その1では「=」でつないだ後、変数bの値を変更しても変数aの値は保持されます。 その2、その3ではdTest1、array1の値を変更していないにも関わらず、 dTest2、array2の値を変更した際に値が勝手に書き換わっている事が分かります、はい。 じゃぁ、どうすればできるんだという人のためにdTest3、array3を一例として示しておきます。 Javaプログラマがよくぶち当たる落とし穴でした。 不具合埋め込まないように気をつけましょう・・・プログラムってメンドクセ( Д`) ご不明な点、間違ってるとこなどありましたら解説、土下座しますので Gまでどうぞ。 ●下記Javaソースの実行結果 a 1 b 2 1回目dTest1 Tue Apr 24 10 02 05 JST 2007 1回目dTest2 Tue Apr 24 10 02 05 JST 2007 1回目dTest3 Tue Apr 24 10 02 05 JST 2007 2回目dTest1 Fri Apr 24 10 02 05 JST 3007 2回目dTest2 Fri Apr 24 10 02 05 JST 3007 2回目dTest3 Tue Apr 24 10 02 05 JST 4007 1回目array1 リンゴ みかん いも 1回目array2 リンゴ みかん いも 1回目array3 リンゴ みかん いも 2回目array1 トラ ライオン トナカイ 2回目array2 トラ ライオン トナカイ 2回目array3 ばば いのき えのき ●以下ソース int a = 1; int b = a; b = 2; System.out.println("a " + a); System.out.println("b " + b); java.util.Date dTest1 = new java.util.Date(); java.util.Date dTest2; java.util.Date dTest3; dTest2 = dTest1; dTest3 = (Date) dTest1.clone(); System.out.println("1回目dTest1 " + dTest1); System.out.println("1回目dTest2 " + dTest2); System.out.println("1回目dTest3 " + dTest3); dTest2.setYear(1107); dTest3.setYear(2107); System.out.println("2回目dTest1 " + dTest1); System.out.println("2回目dTest2 " + dTest2); System.out.println("2回目dTest3 " + dTest3); String[] array1 = {"リンゴ", "みかん\", "いも\"}; String[] array2; String[] array3 = {"", "", ""}; array2 = array1; System.arraycopy(array1, 0, array3, 0, 3); System.out.println("1回目array1 " + array1[0] + " " + array1[1] + " " + array1[2]); System.out.println("1回目array2 " + array2[0] + " " + array2[1] + " " + array2[2]); System.out.println("1回目array3 " + array3[0] + " " + array3[1] + " " + array3[2]); array2[0] = "トラ\"; array2[1] = "ライオン\"; array2[2] = "トナカイ"; array3[0] = "ばば"; array3[1] = "いのき"; array3[2] = "えのき"; System.out.println("2回目array1 " + array1[0] + " " + array1[1] + " " + array1[2]); System.out.println("2回目array2 " + array2[0] + " " + array2[1] + " " + array2[2]); System.out.println("2回目array3 " + array3[0] + " " + array3[1] + " " + array3[2]);
https://w.atwiki.jp/ochamemo/pages/12.html
オチャメモ TODO 基礎 javascriptの型 未定義オブジェクト 数値かどうかのチェック 空のオブジェクト 配列とハッシュ すべてはハッシュ JavaScriptにおけるメンバの定義 JavaScriptにおけるメンバの削除 for in 可変引数 コンストラクタ プロトタイプとは? プロトタイプの仕組み(プロトタイプチェーン) クラス定義 クラス継承 関数について NullとUndefined 配列 関数 apply()メソッドとcall()メソッド 演算子 等値演算子と同値演算子 thisとprototypeどっちで定義すればよいか? 参考リンク 非常に参考になる 読み物系 TODO javaのアクセス指定子の勉強 js.jarのjnlpの指定方法 js.jarのmavenの指定方法 基礎 javascriptの型 プリミティブ系 number--string--boolean-オブジェクト系--object---Number---String---Boolean---Array---[] null function 未定義オブジェクト 未定義オブジェクトかどうかを判定するには以下の方法がある。 // 以下は全部同義(undefined, !, null) var hoge; if (hoge == undefined) { alert("未定義(undefined)"); } if (!hoge) { alert("未定義(!hoge)"); } if (hoge==null) { alert("未定義(null)"); } 連想配列の未定義のチェック var hoges = new Array(); var hoge = hoges["hoge"]; if (hoge == undefined) { document.write("未定義"); } 数値かどうかのチェック if(!isNaN(value)){ document.write("数字"); } 空のオブジェクト var Object = {}; 配列とハッシュ var hash = { java 0, script 1}; var array = [ java , script ]; すべてはハッシュ var hello = {}; hello.world = function() { return "hello, world!" }; hello.hoge = hoge ; alert(hello.hoge); alert(hello[ hoge ]); alert(hello.world()); alert(hello[ world ]()); JavaScriptにおけるメンバの定義 var obj = new Object(); alert(obj.field); // 未定義。未定義の場合 undefined と評価される。 obj.field = 10; // 代入により field というメンバが定義された。 alert(obj.field); // 10 と評価される。 JavaScriptにおけるメンバの削除 var obj = new Object(); obj.field = 10; alert(obj.field); // 10 と評価される。 delete obj.field; // delete 演算子により fieldプロパティが削除される。 alert(obj.field); // 削除され未定義となったため undefined となる。 for in 連想配列からキーを取得できる var info = new Array(); info["name"] = "hoge"; info["type"] = "cat"; info[0] = "A"; info[1] = "B"; for( key in info ){ alert( key + " " + info[key]); } for in でオブジェクトのプロパティを列挙できる var obj = new Object(); obj.foo = value1 ; obj.bar = value2 for (var key in obj) { alert(key + " " + obj[key]); // keyにハッシュのキーが入る(プロパティ名) } 可変引数 argumentsオブジェクトを使うことにより動的にアクセス可能 function hoge(arg1, arg2) { alert(arg1 == arguments[0]); // true alert(arguments[3]); // 4 } hoge(1, 2, 3, 4); コンストラクタ // コンストラクタとは関数定義のこと。 var Hoge = function(){}; // だからこれもコンストラクタ。 function Hoge(){}; // で、これをnewしたらHogeオブジェクトのできあがり var hoge = new Hoge(); // フィールドを定義したい場合は以下のようにthisをつけて代入すればよい var Hoge = function(){ this.field1 = 0; this.field2 = hoge ; }; プロトタイプとは? プロトタイプとはjavaでいうインスタンス。-プロトタイプベースオブジェクト指向とはつまりインスタンスベースクラス指向のこと。-javaのようにクラスの雛形をもとに静的にクラスを生成するのではなく、インスタンスをベースにクラスを量産するというイメージ。**プロトタイプの仕組み(プロトタイプチェーン) コンストラクトした時点では、prototypeは通常、ただの空オブジェクト。 まずオブジェクト自身のプロパティから、該当のプロパティ名を探索 なかった場合、オブジェクトのprototypeオブジェクトのプロパティの中から該当する名前のプロパティを探す。 それでもなければ、そのプロトタイプオブジェクトのprototypeから探索する。 最終的になにもプロパティを持たないprototypeになるまでこれを繰り返す。 見つからなければ、そこで代入になる。参照だったらundefinedのエラーになる これがプロトタイプチェーン。 クラス定義 this,prototypeに定義したメンバは、newしないと参照できない。 定義した変数に直接メンバを設定するとクラス変数、クラスメソッドとなる。 var Hoge = function() { this.thisField = 10; this.thisMethod = function() { return hoge ; }; }; Hoge.prototype.protoMethod = function() { return hogehoge ; }; Hoge.prototype.protoField = 20; Hoge.FIELD = 30; // クラス変数 Hoge.METHOD = function() { return hogehogehoge ; }; // クラスメソッド var hoge = new Hoge(); // prototypeとthisはnewしないと参照できない alert( hoge.thisMethod() +hoge.thisMethod()); // = hoge alert( hoge.protoMethod() +hoge.protoMethod()); // = hogehoge //alert( hoge.METHOD() +hoge.METHOD()); // = エラー not a function alert( hoge.thisField +hoge.thisField); // = 10 alert( hoge.protoField +hoge.protoField); // = 20 //alert( Hoge.thisMethod() +Hoge.thisMethod()); // = エラー not a function //alert( Hoge.protoMethod() +Hoge.protoMethod()); // = 同上 alert( Hoge.FIELD +Hoge.FIELD); // = 30 alert( Hoge.METHOD() +Hoge.METHOD()); // = hogehogehoge クラス継承 prototypeにスーパクラスのインスタンスを設定すればよい。 // スーパクラス var Hoge = function() { this.thisField = 10; this.thisMethod = function() { return hoge ; }; }; Hoge.prototype.protoMethod = function() { return hoge ; }; Hoge.prototype.protoField = 10; Hoge.FIELD = 10; // クラス変数 Hoge.METHOD = function() { return hoge ; }; // クラスメソッド // 継承クラス var Fuga = function() {}; // これでFugaのプロトタイプがHogeになる。つまり継承したことになる Fuga.prototype = new Hoge(); var fuga = new Fuga(); alert( fuga.thisMethod() +fuga.thisMethod()); // = hoge alert( fuga.thisField +fuga.thisField); // = 10 alert( fuga.protoMethod() +fuga.protoMethod()); // = hoge alert( fuga.protoField +fuga.protoField); // = 10 // クラス変数へはアクセスできない alert( Fuga.FIELD +Fuga.FIELD); // = undefined fuga.thisField = 20; alert( fuga.thisField +fuga.thisField); // = 20 書き換わる fuga.protoField = 20; alert( fuga.protoField +fuga.protoField); // = 20 書き換わる fuga.thisMethod = function() { return fuga ; }; alert( fuga.thisMethod() +fuga.thisMethod()); // = fuga 書き換わる fuga.protoMethod = function() { return fuga ; }; alert( fuga.protoMethod() +fuga.protoMethod()); // = fuga 書き換わる // コンストラクタで上書きしたらどうなるか? // てかこれが本来の継承 var Piyo = function() { this.thisField = 20; this.thisMethod = function() { return piyo ; }; }; Piyo.prototype = new Hoge(); var piyo = new Piyo(); alert( piyo.thisMethod() +piyo.thisMethod()); // = piyo 書き換わる alert( piyo.thisField +piyo.thisField); // = 20 書き換わる 関数について 関数内のthisはグローバルオブジェクトのプロパティを示す。 function add(x, y) { this.result = x + y; // これはグローバルのresultを示す。 } add(2, 5); alert(result); NullとUndefined 未定義変数 alert(sValue); // sValueが前もって宣言されていないため、エラーとなる → sValue is not defined null変数 var sValue; alert(sValue); // エラーは起こらないが、undefinedと表示される 配列 配列 var hoge = []; // var hoge = new Array(); とも記述できる。 var hoge2 = [1,2,3,4]; var hoge3 = [1.1, true, "a"]; // ひとつの配列にどんな型も入れられる。 push, pop var hoges = new Array(); hoges.push(0); // 配列の最後に追加 hoges.push(1); hoges.push(2); while (hoges.length != 0) { // 配列の最後を取り出す alert(hoges.pop()); // 2, 1, 0 の順番で表示 } unsift, shift var hoges = new Array(); hoges.unshift(0); // 配列の最初に追加 hoges.unshift(1); hoges.unshift(2); while (hoges.length != 0) { // 配列の最初を取り出す alert(hoges.shift()); // 2, 1, 0 の順番で表示 } 関数 関数宣言はコードの実行より前に解釈される。 c言語で言うstatic変数を関数内にもつ方法 uniqueInteger.counter = 0; // 関数自身にプロパティを設定する。 function uniqueInteger() { return uniqueInteger.counter++; // このプロパティは保持される。 } apply()メソッドとcall()メソッド f.call(o, 1, 2); これは次のように記述したのと同じ o.m = f; o.m(1,2); delete o.m; applyは引数部分を配列で渡す。 f.apply(o, [1,2]); 演算子 基本型をチェックする(typeof) // number, string , boolean , object, function のいずれかを返す var hoge = (typeof value == "string"? "moji" "sonota"; オブジェクトの型をチェックする var d = new Date(); d instanceof Date; // true d inscanceof Object; // true d inscanceof Number; // false 等値演算子と同値演算子 == は型変換してできるだけ等しくなるようにする。 === は型が違えばその時点で、偽になる。 ※== が浅い比較、===が深い比較ではないので注意 オブジェクト同士の比較 ==でも===でも、同じ参照をさしている場合のみ、等しいと判断される。 同じプロパティ、同じ要素を刺して言うことを判定するには個別にチェックしなくてはならない。 nullとundefined ==では、nullもundefindeもnull(false)と判定されるが、===ではより厳密になるため、両者は区別される。 thisとprototypeどっちで定義すればよいか? this--プロパティが上書きできてしまうので好ましくない インスタンスごとにメソッドを定義するのでメモリ効率がよくない prototype--prototyepのプロパティはそれを介したインスタンスで共通に参照される したがってメモリ効率がよい とくにメソッドはprototypeに定義したほうがよい。 var Class = function(){ this.hoge = 0; this.fuga = function() { alert( fuga ); }; }; // var Class = function(){ this.hoge = 0; this.prototype.fuga = function() { alert( fuga ); }; }; 参考リンク 非常に参考になる JavaScriptにおけるオブジェクトの基本的性質-JavaScriptの関数とメソッド-プロトタイプ(prototype)によるJavaScriptのオブジェクト指向 読み物系 javascriptを理解するためのたった2つの大切なこと--http //anond.hatelabo.jp/20070620200618--http //anond.hatelabo.jp/20070622101313-四則演算を JavaScript で実装する--http //d.hatena.ne.jp/nitoyon/20070629/four_operations_implementation_in_javascript-JavaScript 世界で最も誤解されたプログラミング言語--http //d.hatena.ne.jp/brazil/20050829/1125321936-私は如何にしてJavascriptのprototypeを身につけたか。--http //blog.xole.net/article.php?id=560-かつてサーバーサイドJavaScriptは実在した--http //neta.ywcafe.net/000573.html-Rhino on Rails--http //www.aoky.net/articles/steve_yegge/rhino-on-rails.htm
https://w.atwiki.jp/sevenlives/pages/518.html
継承(Java) 読み:けいしょう 英語:inheritance 別名: 意味: 継承とは親クラスの値や振る舞いを受け継ぐこと。 クラスの拡張ともたとえられる。 継承によって同じ記述を何度も書かなくていいという利点がある。 元になるクラスはスーパークラス?【親クラス】ともいい、継承する側のクラスはサブクラス?【派生クラス】などと呼ばれる。 Javaにおける継承はextendsで行われる。 JavaのすべてのクラスはObjectクラスを継承し、明示的に記述しなければObjectクラスが自動的に継承される。 Javaではさまざまな問題を含む多重継承はできません。 スーパークラス? サブクラス? 抽象クラス インターフェース 実装継承? 単一継承モデル Java 2010年10月13日
https://w.atwiki.jp/enusii/pages/22.html
あるとそこそこ便利?な関数 不要小数点削除関数 数値チェック関数 ブランクチェック関数 replaceAll自作 不要小数点削除関数 /** * 小数点を消すことができれば消す. * * PRE * String s = ""; * "1.0"; * tem.out.println(s + "→" + Conv2Prop.delScale(s)); * "1.001"; * tem.out.println(s + "→" + Conv2Prop.delScale(s)); * "1"; * tem.out.println(s + "→" + Conv2Prop.delScale(s)); * "001.0"; * tem.out.println(s + "→" + Conv2Prop.delScale(s)); * "100"; * tem.out.println(s + "→" + Conv2Prop.delScale(s)); * /PRE * * @param str 文字列(数値でない場合は何も行わない) * @return 変換後文字列数値 */ public static String delScale(String str){ if(isNumeric(str)){ BigDecimal bd = new BigDecimal(str); if(bd.doubleValue() == bd.intValue()){ return bd.setScale(0).toPlainString(); } } return str; } 数値チェック関数 /** * 数値型となりえるか. * * @param str * @return true 数値型となりえる false 数値型となりえない */ public static boolean isNumeric(String str){ try{ new BigDecimal(str); return true; } catch (Exception e) { return false; } } ブランクチェック関数 NULLと空文字を同一視 /** * ブランクチェック. * * @param str * @return true null、もしくはブランク false 値あり */ public static boolean isNull(String str){ return (str == null || "".equals(str)); } replaceAll自作 /** * 置換関数. br * ※java1.3にはreplaceAllが無い為、自作. br * * PRE * value="AAAABBCCCDDDAAABCDDDCC",old_str="B",new_str="BBB" ret="AAAABBBBBBCCCDDDAAABBBCDDDCC" * value="AABBCC",old_str="B",new_str="BBB" ret="AABBBBBBCC" * value="AABBCC",old_str="BB",new_str="BBB" ret="AABBBCC" * value="AABBCC",old_str="BBB",new_str="BBB" ret="AABBCC" * value="AABBCCBB",old_str="BB",new_str="" ret="AACC" * value="AABBCC",old_str="BB",new_str="" ret="AACC" * value="AABBCC",old_str="",new_str="" ret="AABBCC" * value="AA.BB C C",old_str=" ",new_str=" amp;" ret="AA.BB amp;C amp;C" * value="AA.BB C C",old_str=".",new_str=" " ret="AA BB C C" * value="AA BB C C",old_str=" ",new_str=" nbsp;" ret="AA nbsp;BB nbsp;C C" * /PRE * @param value 対象文字列 * @param old_str 置換旧文字列 * @param new_str 置換新文字列 * @return 置換後文字列 */ public static String replaceAll(String value, String old_str, String new_str){ //nullチェック if(value == null || old_str == null || "".equals(old_str)){ return value; } StringBuffer ret = new StringBuffer(); int old_len = old_str.length(); int from_index = 0; int index = 0; boolean loop_flg = true; while(loop_flg){ index = value.indexOf(old_str, from_index); if(-1 index){ ret.append(value.substring(from_index, index)); ret.append(new_str); from_index = index + old_len; } else{ ret.append(value.substring(from_index)); loop_flg = false; } } return ret.toString(); } 名前 コメント